// Copyright (c) 2024，D-Robotics.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

/***************************************************************************
 * COPYRIGHT NOTICE
 * Copyright 2022 Horizon Robotics.
 * All rights reserved.
 ***************************************************************************/
#ifndef UTILITY_SENSOR_INC_OV16E10_SETTING_H_
#define UTILITY_SENSOR_INC_OV16E10_SETTING_H_

#ifdef __cplusplus
extern "C"
{
#endif
#define OV16E10_CHIP_ID_MSB (0x300a)
#define OV16E10_CHIP_ID_LSB (0x300b)
#define OV16E10_TPG_CTRL    (0x5081)
#define OV16E10_STREAM_CTRL (0x0100)

// clang-format off
static uint32_t ov16e10_init_setting_4656x3496[] = {
    0x0103, 0x01,
    DELAY_FLAG, 0x0a,
    0x0102, 0x01,
    0x0300, 0xfd,
    0x0301, 0x68,
    0x0302, 0x12,
    0x0303, 0x01,
    0x0304, 0x2c,
    0x0305, 0x46,
    0x0306, 0x00,
    0x0307, 0x00,
    0x0308, 0x00,
    0x0309, 0x00,
    0x030a, 0x00,
    0x030b, 0x04,
    0x030c, 0x00,
    0x030d, 0x40,
    0x030e, 0x00,
    0x030f, 0x07,
    0x0313, 0x40,
    0x0316, 0xb0,
    0x0318, 0x00,
    0x0319, 0x00,
    0x031c, 0x5f,
    0x0324, 0x00,
    0x300e, 0x22,
    0x3016, 0xb6,
    0x3019, 0xd2,
    0x301b, 0x16,
    0x3022, 0xd0,
    0x3025, 0x03,
    0x3026, 0x10,
    0x3027, 0x08,
    0x3028, 0xc3,
    0x3103, 0x0e,
    0x3400, 0x04,
    0x3408, 0x03,
    0x340c, 0xff,
    0x3415, 0x00,
    0x3421, 0x08,
    0x3423, 0x11,
    0x3424, 0x40,
    0x3425, 0x10,
    0x3426, 0x11,
    0x3603, 0x0f,
    0x3608, 0xac,
    0x3609, 0xc0,
    0x360c, 0x00,
    0x361b, 0x8a,
    0x3620, 0x48,
    0x3621, 0x10,
    0x3622, 0x99,
    0x3623, 0x77,
    0x3624, 0xff,
    0x3625, 0xff,
    0x3626, 0x02,
    0x3627, 0x33,
    0x3628, 0x77,
    0x3629, 0x09,
    0x362b, 0x03,
    0x362d, 0x03,
    0x3631, 0xf2,
    0x3633, 0x08,
    0x3634, 0x10,
    0x3635, 0x10,
    0x3636, 0x10,
    0x3637, 0xcc,
    0x3638, 0xcc,
    0x3639, 0xc0,
    0x363a, 0xcc,
    0x3653, 0x00,
    0x3644, 0x40,
    0x360a, 0x09,
    0x360b, 0x1c,
    0x3632, 0xf2,
    0x363b, 0x10,
    0x363c, 0x1a,
    0x363d, 0x2d,
    0x363e, 0x58,
    0x3701, 0x18,
    0x3702, 0x40,
    0x3703, 0x2d,
    0x3704, 0x18,
    0x3706, 0x32,
    0x3707, 0x05,
    0x3708, 0x29,
    0x370b, 0x82,
    0x370c, 0x08,
    0x3717, 0x01,
    0x3718, 0x13,
    0x371b, 0x90,
    0x371c, 0x02,
    0x371d, 0x18,
    0x371f, 0x08,
    0x3721, 0x0e,
    0x3722, 0x04,
    0x3724, 0x05,
    0x3725, 0x21,
    0x3727, 0x23,
    0x3730, 0x04,
    0x3731, 0x04,
    0x3732, 0x04,
    0x3733, 0x04,
    0x3734, 0x04,
    0x3735, 0x04,
    0x3736, 0x07,
    0x3737, 0x01,
    0x3738, 0x07,
    0x3739, 0x01,
    0x373a, 0x07,
    0x373b, 0x03,
    0x373c, 0x07,
    0x373d, 0x07,
    0x373e, 0x07,
    0x373f, 0x18,
    0x3740, 0x04,
    0x3741, 0x02,
    0x3742, 0x04,
    0x3743, 0x07,
    0x3744, 0x15,
    0x3745, 0x07,
    0x3746, 0x15,
    0x3747, 0x36,
    0x3749, 0xa2,
    0x374a, 0x0d,
    0x374b, 0x23,
    0x374f, 0x07,
    0x3751, 0x04,
    0x3762, 0x08,
    0x3763, 0x08,
    0x3764, 0x08,
    0x3765, 0x10,
    0x3767, 0x28,
    0x3768, 0x00,
    0x3769, 0x08,
    0x376a, 0x10,
    0x3770, 0x20,
    0x3773, 0x2b,
    0x3774, 0x38,
    0x3775, 0x2d,
    0x3776, 0x08,
    0x3777, 0x02,
    0x3778, 0x37,
    0x377a, 0x0d,
    0x377b, 0x2d,
    0x377c, 0x09,
    0x377d, 0x02,
    0x377e, 0x04,
    0x377f, 0x02,
    0x379b, 0x0a,
    0x379c, 0x0a,
    0x379d, 0x0a,
    0x379e, 0x20,
    0x379f, 0x20,
    0x37a0, 0x08,
    0x37a1, 0x08,
    0x37a2, 0x02,
    0x37a3, 0x08,
    0x37a4, 0x02,
    0x37a5, 0x2f,
    0x37a6, 0x0a,
    0x37a7, 0x05,
    0x37a8, 0x05,
    0x37a9, 0x05,
    0x37aa, 0x05,
    0x37ab, 0x09,
    0x37ac, 0x0d,
    0x37ad, 0x0d,
    0x37ae, 0x0d,
    0x37b0, 0x38,
    0x37b1, 0x38,
    0x37b2, 0x0e,
    0x37b3, 0x40,
    0x37b4, 0x40,
    0x37b5, 0x1c,
    0x37c0, 0x04,
    0x37c1, 0x01,
    0x37c2, 0x02,
    0x37c3, 0x04,
    0x37c4, 0x02,
    0x37c5, 0x04,
    0x37c9, 0x02,
    0x37ce, 0x07,
    0x37cf, 0x01,
    0x37d0, 0x07,
    0x37d1, 0x01,
    0x37d2, 0x07,
    0x37d3, 0x01,
    0x37d4, 0x02,
    0x37d5, 0x0a,
    0x37d6, 0x14,
    0x37d7, 0x20,
    0x37d8, 0x04,
    0x37e0, 0x15,
    0x37e1, 0x02,
    0x37e2, 0x04,
    0x37e3, 0x18,
    0x37e4, 0x07,
    0x37e5, 0x15,
    0x37e6, 0x07,
    0x37e7, 0x15,
    0x37e8, 0x07,
    0x37e9, 0x1a,
    0x37eb, 0x04,
    0x37ec, 0x04,
    0x37ed, 0x07,
    0x37ee, 0x01,
    0x37f0, 0x07,
    0x37f1, 0x01,
    0x37f2, 0x07,
    0x37f3, 0x01,
    0x37f6, 0x14,
    0x37f7, 0x01,
    0x37f8, 0x28,
    0x37fd, 0x01,
    0x37fe, 0x01,
    0x37ff, 0x01,
    0x3816, 0x01,
    0x3817, 0x10,
    0x3818, 0x01,
    0x3821, 0x04,
    0x3823, 0x00,
    0x382a, 0x01,
    0x3f01, 0x12,
    0x3d85, 0x0b,
    0x3d8c, 0x77,
    0x3d8d, 0xa0,
    0x4009, 0x02,
    0x4012, 0x3d,
    0x401e, 0x01,
    0x401f, 0x80,
    0x4021, 0x00,
    0x4023, 0x00,
    0x4024, 0x04,
    0x4025, 0x00,
    0x4026, 0x04,
    0x4027, 0x00,
    0x4057, 0x10,
    0x4504, 0x02,
    0x4510, 0x18,
    0x4640, 0x00,
    0x4643, 0x08,
    0x4645, 0x04,
    0x4800, 0x80,
    0x4837, 0x30,
    0x4850, 0x0d,
    0x4855, 0x4c,
    0x4856, 0x58,
    0x4a00, 0x10,
    0x4d00, 0x03,
    0x4d01, 0xb2,
    0x4d02, 0xbc,
    0x4d03, 0x8d,
    0x4d04, 0x82,
    0x4d05, 0xcd,
    0x5002, 0x15,
    0x5038, 0x40,
    0x5081, 0x81,
    0x5181, 0x10,
    0x5182, 0x07,
    0x5183, 0x8f,
    0x5860, 0x00,
    0x58cb, 0x03,
    0x5bd3, 0x6f,
    0x5c11, 0x01,
    0x5c16, 0x02,
    0x5c17, 0x00,
    0x5c1a, 0x00,
    0x5c1b, 0x00,
    0x5c2e, 0x08,
    0x5c23, 0x02,
    0x5c24, 0x0a,
    0x5c25, 0x06,
    0x5c26, 0x0e,
    0x5c2c, 0x00,
    0x5c35, 0x03,
    0x5c36, 0x03,
    0x5c37, 0x03,
    0x5c38, 0x03,
    0x5d02, 0x80,
    0x5d03, 0x44,
    0x5d05, 0xfc,
    0x5d06, 0x0b,
    0x5d0a, 0x02,
    0x5d0b, 0x0a,
    0x5d0c, 0x06,
    0x5d0d, 0x0e,
    0x5d13, 0x00,
    0x5d15, 0x10,
    0x5d16, 0x10,
    0x5d17, 0x10,
    0x5d18, 0x10,
    0x5d1a, 0x10,
    0x5d1b, 0x10,
    0x5d1c, 0x10,
    0x5d1d, 0x10,
    0x5d1e, 0x04,
    0x5d1f, 0x04,
    0x5d20, 0x04,
    0x5d27, 0x64,
    0x5d28, 0xc8,
    0x5d29, 0x96,
    0x5d2a, 0xff,
    0x5d2b, 0xc8,
    0x5d2c, 0xff,
    0x5d2d, 0x04,
    0x5d4c, 0x00,
    0x0303, 0x12,
    0x0304, 0x6e,
    0x030e, 0x06,
    0x4837, 0x30,
    0x0100, 0x00,
    0x0300, 0xfd,
    0x0301, 0x2c,
    0x0302, 0x10,
    0x0303, 0x12,
    0x0304, 0x6e,
    0x0305, 0x00,
    0x030b, 0x05,
    0x030c, 0x00,
    0x030d, 0xb0,
    0x030e, 0x06,
    0x030f, 0x07,
    0x0311, 0x01,
    0x0313, 0x40,
    0x0314, 0x05,
    0x0315, 0x00,
    0x0316, 0xb0,
    0x0318, 0x00,
    0x0319, 0x00,
    0x031a, 0x01,
    0x031c, 0x5f,
    0x031d, 0x01,
    0x3012, 0x21,
    0x3664, 0x01,
    0x3709, 0x80,
    0x3714, 0x67,
    0x374c, 0x08,
    0x374d, 0x12,
    0x374e, 0x0a,
    0x3752, 0x08,
    0x3753, 0x0f,
    0x3754, 0x66,
    0x3781, 0x3b,
    0x3798, 0x84,
    0x37c8, 0x32,
    0x37cc, 0xff,
    0x37cd, 0x32,
    0x37d9, 0x10,
    0x3800, 0x00,
    0x3801, 0x00,
    0x3802, 0x00,
    0x3803, 0x00,
    0x3808, 0x12,
    0x3809, 0x30,  // X outsize = 4656.
    0x380a, 0x0d,
    0x380b, 0xa8,  // Y outsize = 3496.
    // 0x380c, 0x21,  // HTS
    0x380c, 0x12,
    0x380d, 0xd8,
    // 0x380e, 0x28,  // VTS
    0x380e, 0x0d,
    0x380f, 0xe0,
    0x3810, 0x00,
    0x3811, 0x00,
    0x3812, 0x00,
    0x3813, 0x00,
    0x3814, 0x11,
    0x3815, 0x11,
    0x3820, 0x00,
    0x3822, 0x00,
    0x383d, 0x00,
    0x383e, 0x0d,
    0x4015, 0x04,
    0x4016, 0x1b,
    0x4017, 0x08,
    0x4018, 0x0f,
    0x4641, 0x00,
    0x480e, 0x02,
    0x4813, 0x98,
    0x4837, 0x30,
    0x5000, 0x0b,
    0x5001, 0x4b,
    0x5005, 0x00,
    0x5820, 0xc4,
    0x5bd0, 0x01,
    0x5bd4, 0x00,
    0x5bd5, 0x94,
    0x5bdd, 0x00,
    0x5c22, 0x10,
    0x5c27, 0x02,
    0x5c28, 0x02,
    0x5c29, 0x0a,
    0x5c2a, 0x0a,
    0x5c30, 0x04,
    0x5c33, 0x0d,
    0x5c34, 0xc0,
    0x5c4b, 0x00,
    0x5d00, 0xff,
    0x5d01, 0x07,
    0x5d09, 0x10,
    0x5d0e, 0x02,
    0x5d0f, 0x02,
    0x5d10, 0x0a,
    0x5d11, 0x0a,
    0x5d37, 0x04,
    0x5d3a, 0x0d,
    0x5d3b, 0xc0,
    0x5d49, 0x00,
    0x5d4a, 0x00,
    0x3501, 0x02,
    0x3502, 0xd0,
    0x3508, 0x01,
    0x3509, 0x00,
    0x031e, 0x01,
//    0x0100, 0x01,
};

static uint32_t ov16e10_pll_setting[] = {
    // 0x0300, 0xfd,
    0x0300, 0xf9,
    0x0301, 0x2c,
    0x0302, 0x10,
    0x0303, 0x12,
    0x0304, 0x6e,
    0x0305, 0x00,
    0x0306, 0x00,
    0x0307, 0x00,
    0x0308, 0x00,
    0x0309, 0x00,
    0x030a, 0x00,
    0x030b, 0x05,
    0x030c, 0x01,
    0x030d, 0xb0,
    0x030e, 0x02,
    0x030f, 0x03,
    0x0311, 0x01,
    0x0313, 0x40,
    0x0314, 0x05,
    0x0315, 0x00,
    0x0316, 0xfa,
    0x0318, 0x00,
    0x0319, 0x00,
    0x031a, 0x00,
    0x031c, 0x49,
    0x031d, 0x02,
    0x0321, 0x09,
};

static uint32_t ov16e10_init_setting_4608x3456[] = {
    0x0103, 0x01,
    DELAY_FLAG, 0x0a,
    0x0102, 0x01,
    0x0300, 0xfd,
    0x0301, 0x2c,
    0x0304, 0xfc,
    0x030d, 0xb0,
    0x030f, 0x07,
    0x0313, 0x40,
    0x0316, 0xb0,
    0x0318, 0x00,
    0x0319, 0x00,
    0x031c, 0x4f,
    0x0324, 0x00,
    0x300e, 0x22,
    0x3012, 0x21,
    0x3016, 0xb4,
    0x3019, 0xd2,
    0x301b, 0x16,
    0x3022, 0xd0,
    0x3025, 0x03,
    0x3026, 0x10,
    0x3027, 0x08,
    0x3028, 0xc3,
    0x3103, 0x0e,
    0x3400, 0x04,
    0x3408, 0x03,
    0x340c, 0xff,
    0x3415, 0x00,
    0x3421, 0x08,
    0x3423, 0x11,
    0x3424, 0x40,
    0x3425, 0x10,
    0x3426, 0x11,
    0x3603, 0x0f,
    0x3608, 0xac,
    0x3609, 0xc0,
    0x360c, 0x00,
    0x361b, 0x8a,
    0x3620, 0x48,
    0x3621, 0x10,
    0x3622, 0x99,
    0x3623, 0x77,
    0x3624, 0xff,
    0x3625, 0xff,
    0x3626, 0x02,
    0x3627, 0x33,
    0x3628, 0x77,
    0x3629, 0x09,
    0x362b, 0x03,
    0x362d, 0x03,
    0x3631, 0xf2,
    0x3633, 0x08,
    0x3634, 0x10,
    0x3635, 0x10,
    0x3636, 0x10,
    0x3637, 0xcc,
    0x3638, 0xcc,
    0x3639, 0xc0,
    0x363a, 0xcc,
    0x3653, 0x00,
    0x3644, 0x40,
    0x360a, 0x09,
    0x360b, 0x1c,
    0x3632, 0xf2,
    0x363b, 0x10,
    0x363c, 0x1a,
    0x363d, 0x2d,
    0x363e, 0x58,
    0x3701, 0x18,
    0x3702, 0x40,
    0x3703, 0x2d,
    0x3704, 0x18,
    0x3706, 0x32,
    0x3707, 0x05,
    0x3708, 0x29,
    0x370b, 0x82,
    0x370c, 0x08,
    0x3717, 0x01,
    0x3718, 0x13,
    0x371b, 0x90,
    0x371c, 0x02,
    0x371d, 0x18,
    0x371f, 0x08,
    0x3721, 0x0e,
    0x3722, 0x04,
    0x3724, 0x05,
    0x3725, 0x21,
    0x3727, 0x23,
    0x3730, 0x04,
    0x3731, 0x04,
    0x3732, 0x04,
    0x3733, 0x04,
    0x3734, 0x04,
    0x3735, 0x04,
    0x3736, 0x07,
    0x3737, 0x01,
    0x3738, 0x07,
    0x3739, 0x01,
    0x373a, 0x07,
    0x373b, 0x03,
    0x373c, 0x07,
    0x373d, 0x07,
    0x373e, 0x07,
    0x373f, 0x18,
    0x3740, 0x04,
    0x3741, 0x02,
    0x3742, 0x04,
    0x3743, 0x07,
    0x3744, 0x15,
    0x3745, 0x07,
    0x3746, 0x15,
    0x3747, 0x36,
    0x3749, 0xa2,
    0x374a, 0x0d,
    0x374b, 0x23,
    0x374f, 0x07,
    0x3751, 0x04,
    0x3762, 0x08,
    0x3763, 0x08,
    0x3764, 0x08,
    0x3765, 0x10,
    0x3767, 0x28,
    0x3768, 0x00,
    0x3769, 0x08,
    0x376a, 0x10,
    0x3770, 0x20,
    0x3773, 0x2b,
    0x3774, 0x38,
    0x3775, 0x2d,
    0x3776, 0x08,
    0x3777, 0x02,
    0x3778, 0x37,
    0x377a, 0x0d,
    0x377b, 0x2d,
    0x377c, 0x09,
    0x377d, 0x02,
    0x377e, 0x04,
    0x377f, 0x02,
    0x379b, 0x0a,
    0x379c, 0x0a,
    0x379d, 0x0a,
    0x379e, 0x20,
    0x379f, 0x20,
    0x37a0, 0x08,
    0x37a1, 0x08,
    0x37a2, 0x02,
    0x37a3, 0x08,
    0x37a4, 0x02,
    0x37a5, 0x2f,
    0x37a6, 0x0a,
    0x37a7, 0x05,
    0x37a8, 0x05,
    0x37a9, 0x05,
    0x37aa, 0x05,
    0x37ab, 0x09,
    0x37ac, 0x0d,
    0x37ad, 0x0d,
    0x37ae, 0x0d,
    0x37b0, 0x38,
    0x37b1, 0x38,
    0x37b2, 0x0e,
    0x37b3, 0x40,
    0x37b4, 0x40,
    0x37b5, 0x1c,
    0x37c0, 0x04,
    0x37c1, 0x01,
    0x37c2, 0x02,
    0x37c3, 0x04,
    0x37c4, 0x02,
    0x37c5, 0x04,
    0x37c9, 0x02,
    0x37ce, 0x07,
    0x37cf, 0x01,
    0x37d0, 0x07,
    0x37d1, 0x01,
    0x37d2, 0x07,
    0x37d3, 0x01,
    0x37d4, 0x02,
    0x37d5, 0x0a,
    0x37d6, 0x14,
    0x37d7, 0x20,
    0x37d8, 0x04,
    0x37e0, 0x15,
    0x37e1, 0x02,
    0x37e2, 0x04,
    0x37e3, 0x18,
    0x37e4, 0x07,
    0x37e5, 0x15,
    0x37e6, 0x07,
    0x37e7, 0x15,
    0x37e8, 0x07,
    0x37e9, 0x1a,
    0x37eb, 0x04,
    0x37ec, 0x04,
    0x37ed, 0x07,
    0x37ee, 0x01,
    0x37f0, 0x07,
    0x37f1, 0x01,
    0x37f2, 0x07,
    0x37f3, 0x01,
    0x37f6, 0x14,
    0x37f7, 0x01,
    0x37f8, 0x28,
    0x37fd, 0x01,
    0x37fe, 0x01,
    0x37ff, 0x01,
    0x3800, 0x00,
    0x3801, 0x00,
    0x3802, 0x00,
    0x3803, 0x00,
    0x3816, 0x01,
    0x3817, 0x10,
    0x3818, 0x01,
    0x3821, 0x04,
    0x3823, 0x00,
    0x382a, 0x01,
    0x3f01, 0x12,
    0x3d85, 0x0b,
    0x3d8c, 0x77,
    0x3d8d, 0xa0,
    0x4009, 0x02,
    0x4012, 0x3d,
    0x401e, 0x01,
    0x401f, 0x80,
    0x4021, 0x00,
    0x4023, 0x00,
    0x4024, 0x04,
    0x4025, 0x00,
    0x4026, 0x04,
    0x4027, 0x00,
    0x4057, 0x10,
    0x4504, 0x02,
    0x4510, 0x18,
    0x4640, 0x00,
    0x4643, 0x08,
    0x4645, 0x04,
    0x4800, 0x80,
    0x4837, 0x30,
    0x4850, 0x0d,
    0x4855, 0x4c,
    0x4856, 0x58,
    0x4a00, 0x10,
    0x4d00, 0x03,
    0x4d01, 0xb2,
    0x4d02, 0xbc,
    0x4d03, 0x8d,
    0x4d04, 0x82,
    0x4d05, 0xcd,
    0x5002, 0x15,
    0x5038, 0x40,
    0x5081, 0x80,
    0x5181, 0x10,
    0x5182, 0x07,
    0x5183, 0x8f,
    0x5860, 0x00,
    0x58cb, 0x03,
    0x5bd3, 0x6f,
    0x5c11, 0x01,
    0x5c16, 0x02,
    0x5c17, 0x00,
    0x5c1a, 0x00,
    0x5c1b, 0x00,
    0x5c2e, 0x08,
    0x5c23, 0x02,
    0x5c24, 0x0a,
    0x5c25, 0x06,
    0x5c26, 0x0e,
    0x5c2c, 0x00,
    0x5c35, 0x03,
    0x5c36, 0x03,
    0x5c37, 0x03,
    0x5c38, 0x03,
    0x5d02, 0x80,
    0x5d03, 0x44,
    0x5d05, 0xfc,
    0x5d06, 0x0b,
    0x5d0a, 0x02,
    0x5d0b, 0x0a,
    0x5d0c, 0x06,
    0x5d0d, 0x0e,
    0x5d13, 0x00,
    0x5d15, 0x10,
    0x5d16, 0x10,
    0x5d17, 0x10,
    0x5d18, 0x10,
    0x5d1a, 0x10,
    0x5d1b, 0x10,
    0x5d1c, 0x10,
    0x5d1d, 0x10,
    0x5d1e, 0x04,
    0x5d1f, 0x04,
    0x5d20, 0x04,
    0x5d27, 0x64,
    0x5d28, 0xc8,
    0x5d29, 0x96,
    0x5d2a, 0xff,
    0x5d2b, 0xc8,
    0x5d2c, 0xff,
    0x5d2d, 0x04,
    0x5d4c, 0x00,
    0x5900, 0x40,
    0x5901, 0x40,
    0x5902, 0x40,
    0x5903, 0x40,
    0x5904, 0x40,
    0x5905, 0x40,
    0x5906, 0x40,
    0x5907, 0x40,
    0x5908, 0x40,
    0x5909, 0x40,
    0x590a, 0x40,
    0x590b, 0x40,
    0x590c, 0x40,
    0x590d, 0x40,
    0x590e, 0x40,
    0x590f, 0x40,
    0x5910, 0x40,
    0x5911, 0x40,
    0x5912, 0x40,
    0x5913, 0x40,
    0x5914, 0x40,
    0x5915, 0x40,
    0x5916, 0x40,
    0x5917, 0x40,
    0x5918, 0x40,
    0x5919, 0x40,
    0x591a, 0x40,
    0x591b, 0x40,
    0x591c, 0x40,
    0x591d, 0x40,
    0x591e, 0x40,
    0x591f, 0x40,
    0x5920, 0x40,
    0x5921, 0x40,
    0x5922, 0x40,
    0x5923, 0x40,
    0x5924, 0x40,
    0x5925, 0x40,
    0x5926, 0x40,
    0x5927, 0x40,
    0x5928, 0x40,
    0x5929, 0x40,
    0x592a, 0x40,
    0x592b, 0x40,
    0x592c, 0x40,
    0x592d, 0x40,
    0x592e, 0x40,
    0x592f, 0x40,
    0x5930, 0x40,
    0x5931, 0x40,
    0x5932, 0x40,
    0x5933, 0x40,
    0x5934, 0x40,
    0x5935, 0x40,
    0x5936, 0x40,
    0x5937, 0x40,
    0x5938, 0x40,
    0x5939, 0x40,
    0x593a, 0x40,
    0x593b, 0x40,
    0x593c, 0x40,
    0x593d, 0x40,
    0x593e, 0x40,
    0x593f, 0x40,
    0x5940, 0x40,
    0x5941, 0x40,
    0x5942, 0x40,
    0x5943, 0x40,
    0x5944, 0x40,
    0x5945, 0x40,
    0x5946, 0x40,
    0x5947, 0x40,
    0x5948, 0x40,
    0x5949, 0x40,
    0x594a, 0x40,
    0x594b, 0x40,
    0x594c, 0x40,
    0x594d, 0x40,
    0x594e, 0x40,
    0x594f, 0x40,
    0x5950, 0x40,
    0x5951, 0x40,
    0x5952, 0x40,
    0x5953, 0x40,
    0x5954, 0x40,
    0x5955, 0x40,
    0x5956, 0x40,
    0x5957, 0x40,
    0x5958, 0x40,
    0x5959, 0x40,
    0x0100, 0x00,
    0x3664, 0x47,
    0x3709, 0x9b,
    0x3714, 0x67,
    0x374c, 0x00,
    0x374d, 0x17,
    0x374e, 0x2a,
    0x3752, 0x00,
    0x3753, 0x00,
    0x3754, 0xee,
    0x3781, 0x00,
    0x3798, 0x00,
    0x37c8, 0x02,
    0x37cc, 0xf0,
    0x37cd, 0x01,
    0x37d9, 0x00,
    0x3808, 0x12,
    0x3809, 0x00,
    0x3810, 0x00,
    0x3811, 0x00,
    0x3812, 0x00,
    0x3813, 0x00,
    0x380a, 0x0d,
    0x380b, 0x80,
    // 0x380c, 0x22,
    0x380c, 0x12,
    0x380d, 0xd9,
    // 0x380e, 0x2e,
    0x380e, 0x0d,
    0x380f, 0x76,
    0x3814, 0x11,
    0x3815, 0x11,
    0x3820, 0x00,
    0x3822, 0x00,
    0x383d, 0x00,
    0x383e, 0x0d,
    0x4015, 0x04,
    0x4016, 0x1b,
    0x4017, 0x08,
    0x4018, 0x0f,
    0x4641, 0x24,
    0x480e, 0x06,
    0x4813, 0x98,
    0x5000, 0x0b,
    0x5001, 0x4b, // origin 0x4b
    0x5005, 0x40,
    0x5820, 0xc5,
    0x5bd0, 0x41,
    0x5bd4, 0x00,
    0x5bd5, 0x94,
    0x5bdd, 0x00,
    0x5c22, 0x10,
    0x5c27, 0x02,
    0x5c28, 0x02,
    0x5c29, 0x0a,
    0x5c2a, 0x0a,
    0x5c30, 0x04,
    0x5c33, 0x0d,
    0x5c34, 0xc0,
    0x5c4b, 0x00,
    0x5d00, 0xff, // origin 0xff
    0x5d01, 0x07,
    0x5d09, 0x10,
    0x5d0e, 0x02,
    0x5d0f, 0x02,
    0x5d10, 0x0a,
    0x5d11, 0x0a,
    0x5d37, 0x04,
    0x5d3a, 0x0d,
    0x5d3b, 0xc0,
    0x5d49, 0x00,
    0x5d4a, 0x00,
};

static uint32_t ov16e10_pdaf_settings[] = {
    0x3664, 0x47,
    0x4809, 0x2b,
    0x480e, 0x06,
    0x4813, 0x98,
    0x5005, 0x40,
    0x5bd0, 0x40,
    0x3501, 0x02, //AEC
    0x3502, 0xd0,
    0x3508, 0x01, //GAIN
    0x3509, 0x00,
};

static uint32_t ov16e10_4656x3496[] = {
    0x3804, 0x12,
    0x3805, 0x4f,
    0x3806, 0x0d,
    0x3807, 0xc7,
    0x3808, 0x12,
    0x3809, 0x30,
    0x380a, 0x0d,
    0x380b, 0xa8,
    0x380c, 0x12, //HTS
    0x380d, 0xd8,
    0x380e, 0x30, //VTS
    0x380f, 0x90,
};

static uint32_t ov16e10_4656x3076[] = {
    0x3808, 0x12,
    0x3809, 0x30,
    0x380a, 0x0c,
    0x380b, 0x04,
};

static uint32_t ov16e10_4608x3456[] = {
    0x3804, 0x12,
    0x3805, 0x4f,
    0x3806, 0x0d,
    0x3807, 0xc7,
    0x3808, 0x12,
    0x3809, 0x00,
    0x380a, 0x0d,
    0x380b, 0x80,
    0x380c, 0x12,
    0x380d, 0xd8,
    0x380e, 0x30,
    0x380f, 0x90,
    0x4641, 0x90,
};

static uint32_t ov16e10_4096x3076[] = {
    0x3808, 0x10,
    0x3809, 0x00,
    0x380a, 0x0c,
    0x380b, 0x04,
};

static uint32_t ov16e10_3840x2160[] = {
    0x3804, 0x12,
    0x3805, 0x4f,
    0x3806, 0x09,
    0x3807, 0x43,
    0x3808, 0x0f,
    0x3809, 0x00,
    0x380a, 0x08,
    0x380b, 0x70,
    0x380c, 0x10,
    0x380d, 0x90,
    0x380e, 0x0d,
    0x380f, 0xd2,
    0x4641, 0x78,
};

static uint32_t ov16e10_1920x1080[] = {
    0x3808, 0x07,
    0x3809, 0x80,
    0x380a, 0x04,
    0x380b, 0x38,
};

static uint32_t ov16e10_2lane_stream_on_setting[] = {
    OV16E10_STREAM_CTRL, 1,
};

static uint32_t ov16e10_2lane_stream_off_setting[] = {
    OV16E10_STREAM_CTRL, 0,
};

static uint32_t ov16e10_gain_lut[] = {
};

#ifdef __cplusplus
}
#endif

#endif
